// 导入Node.js内置的querystring模块
const qs = require('querystring')

const bodyParser = (req, res, next) => {
    // 定义中间件的业务逻辑
    // 在中间件重，需要监听req对象的data事件，来获取客户端发送到服务器的数据
    // 如果数据量比较大，客户端会把数据切割

    // 1.定义一个str字符串，专门用来存储客户端发送来的数据
    let str = ''
    // 2.监听req的data事件
    req.on('data', (chunk) => {
        str += chunk
    })
    // 3.监听req的end事件
    req.on('end', () => {
        // 在str中存放的是完整的请求体数据
        // console.log(str)
        // TODO:把字符串格式的请求体数据，解析成对象格式
        // Node.js内置了一个qureystring模块，专门用来处理查询字符串。通过这个模块提供的parse()函数，可以把查询的字符串
        // 解析成对象的格式
        const body = qs.parse(str)
        console.log(body)
        req.body = body
        next()
    })

}


module.exports = bodyParser